#!/bin/bash
###############################################################################
# @用例ID: 20230528-134356-055377917
# @用例名称: glib2
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"
    # @预置条件:系统正常运行，且已安装 glib2
    assert_true yum install -y glib2


    return 0
}


do_test() {
    msg "this is do_test"

    # @测试步骤:1 使用 glib-compile-resources 命令编译资源文件
    # @预期结果:1 确保资源文件能够成功编译，并生成对应的资源输出文件
    assert_true glib-compile-resources resource.xml

    # @测试步骤:2 使用 glib-genmarshal 命令生成代码模板
    # @预期结果:2 确保代码模板能够生成，并包含了所需的函数和结构体定义
    assert_true glib-genmarshal --header=marshal.h --body=marshal.c

    # @测试步骤:3 使用 glib-mkenums 命令生成枚举类型定义
    # @预期结果:3 确保枚举类型定义文件能够生成，并包含了所需的枚举值和描述
    assert_true glib-mkenums --header=enums.h --body=enums.c

    # @测试步骤:4 使用 glib-compile-schemas 命令编译 GSettings schemas
    # @预期结果:4 确保 GSettings schemas 能够成功编译，并生成对应的配置文件
    assert_true glib-compile-schemas /usr/share/glib-2.0/schemas

    return 0
}



tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
